使用Ajax方法傳資料時
一直以為資料是這樣流動的
1.Ajaz方式送資料
2.PHP檔解析後依對應邏輯程式回傳資料(return)
3.jsp呈現資料的程式
4.show在畫面上
##結果並不是!!!!
之前寫PHP前用return沒出事真的是運氣好...
code jsp
function clickbtn(){
        $.ajax({
            type: "GET",
            url: "../controller/controller.php",
            data: {data: "test"},
            success: function(data) {
                console.log(data);
            },
        })
        alert("ajax結束");  //Ajax結束
    }
    console.log("OK");   //程式一開式就執行OK
code PHP
<?php
$data = $_GET["data"];
$arr = ["apple", "banana", "cola", "1", "2", "3"];
echo $data;           //GET裡的參數test
echo "<br>1";
echo $arr;            // array不能echo所以出Array to string conversion
echo "<br>3<br>";
print_r($arr);        
echo "<br>2<br>";
return $arr;         //本來希望return帶data 但這是錯的(X) 而且程式結束沒有echo END
echo "END";
Network
console
如果return是可行的話,在console是會在2的後面有dataArray
把PHP換一下
<?php
$data = $_GET["data"];
$arr = ["apple", "banana", "cola", "1", "2", "3"];
echo $data;      //test
echo "<br>2<br>";
return $arr;      //這邊就會結束程式
echo "<br>3<br>";  //以下都不執行
print_r($arr);
echo "END";
所以console只有OK test2
但如果再把rerurn拿掉
<?php
$data = $_GET["data"];
$arr = ["apple", "banana", "cola", "1", "2", "3"];
echo $data;      //test
echo "<br>2<br>";
//return $arr;      //註解
echo "<br>3<br>"; 
print_r($arr);
echo "END";
即使print出來後,還是會照樣echo END 所以要die()來結束
關於rerurn exit die網路上有很多討論了!只是自己都會忘記,那就來寫一篇文章加深印象